package login.dao;

import login.domain.User;
import login.util.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * @Author Administrator
 * @Date 2020/5/29 9:19
 * 利用Spring框架JdbcTemple
 * 1）准备sql语句
 * 2）增删改；update（），传入参数1：sql
 * 参数2：给？赋值
 * 查询：queryForObject（）返回对象（表中的一条记录）
 * query（）返回的是集合（表中满足条件的多条记录 ）
 * 传入参数1：sql
 * 参数2：Bean...自动将表中的记录封装成对象/集合
 * 参数3：给？赋值
 **/
public class UserDaoImpl implements UserDao {
    JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
    String sql="";

    @Override
    public User login(String name, String password) {
        sql="select * from user where name=? and password=?";
        try {
            return template.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),name,password);
        }catch (Exception e){
            System.out.println(e.getMessage());
            return null;
        }
    }

    @Override
    public void register(User user) {
        /*数据库里id自增的，user对象也没有id具体值
        * sql语句中写法有两种：
        * insert into user（name,password） values(?,?)*/
        sql="insert into user values(null,?,?)";
        /*增删改用update方法，传入两类参数
        * 参数1：sql
        * 参数2：给问好占位符赋值*/
        template.update(sql,user.getName(),user.getPassword());
    }
}
